/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaLogica;

import CapaDatos.Usuario_DAO;
import CapaSeguridad.GuateBayException;

/**
 *
 * @author Cajas
 */
public class Usuario {
    private int id;
    private String nombre;    
    private String email;
    private int rol;
    private String usuario;
    private String password;    
    
    public Usuario(){}
    
    public Usuario(String nombre, String email, String usuario, String password){
        this.nombre = nombre;        
        this.email = email;
        this.usuario = usuario;
        this.password = password;
        this.rol = 2;
    }
    
    public Usuario(String nombre, String email, String usuario, String password, int rol){
        this.nombre = nombre;        
        this.email = email;
        this.usuario = usuario;
        this.password = password;
        this.rol = rol;
    }
    
    public Respuesta registrar() {
        Usuario_DAO user = new Usuario_DAO();
        Respuesta response;
        try {
            int result = user.guardarReg(nombre, usuario, email, password, "true", 2);
            this.id = result;
            if (result != -1) {
                response = new Respuesta(0, 0, this, "Registro realizado con éxito.");
            } else {
                response = new Respuesta(1, 0, null, "Hubo un error en el registro. Intentelo de nuevo.");
            }
        }catch (GuateBayException exception){
            response = new Respuesta(1, 0, null, "Hubo un error en el registro. Intentelo de nuevo.");
            new CapaSeguridad.Error(exception).insertarError();
        }
        return response;

    }
    
    public Respuesta autenticar(){ 
        Usuario_DAO user = new Usuario_DAO();
        Respuesta response;
        try{
        int result = user.obtenerIdUsuario(nombre, password);
        
        this.id = result;               
        if(result != -1){
            response = new Respuesta(0,0,this,"Datos correctos");
        }else{
            response = new Respuesta(2,0,null,"Datos Invalidos. Intentelo de Nuevo");
        }   
        }catch(GuateBayException exception){
            response = new Respuesta(2,0,null,"Datos Invalidos. Intentelo de Nuevo");
            new CapaSeguridad.Error(exception).insertarError();
        }
        return response;     
    }    

    /*************GETTERS and SETTERS************/
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }    
    
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getRol() {
        return rol;
    }

    public void setRol(int rol) {
        this.rol = rol;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }                
}
